package com.strategicgains.restexpress.plugin.annotation; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import org.apache.http.Consts; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.restexpress.RestExpress; import org.restexpress.pipeline.SimpleConsoleLogMessageObserver; public class AnnotationPluginTest { private static final int SERVER_PORT = 8888; private static final String SERVER_HOST = "http://localhost:" + SERVER_PORT; private RestExpress server = new RestExpress(); private HttpClient client = new DefaultHttpClient(); @Before public void createServer() { RestExpress.getSerializationProvider(); server = new RestExpress().setName("") .setBaseUrl(SERVER_HOST) .addMessageObserver(new SimpleConsoleLogMessageObserver()); } @After public void shutdownServer() { server.shutdown(); } @Test public void shouldReturnStatusSuccessOnGET() throws Exception { new AnnotationPlugin().scanPackage("com.strategicgains.restexpress.plugin").register(server); server.bind(SERVER_PORT); HttpGet request = new HttpGet(SERVER_HOST + "/users.json"); HttpResponse response = (HttpResponse) client.execute(request); assertEquals(200, response.getStatusLine().getStatusCode()); request.releaseConnection(); } @Test public void shouldReturnStatusSuccessOnPOST() throws Exception { new AnnotationPlugin().scanPackage("com.strategicgains.restexpress.plugin").register(server); server.bind(SERVER_PORT); List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("username", "gustavohenrique")); HttpPost request = new HttpPost(SERVER_HOST + "/user/create.json"); request.setEntity(new UrlEncodedFormEntity(params, Consts.UTF_8)); HttpResponse response = (HttpResponse) client.execute(request); assertEquals(200, response.getStatusLine().getStatusCode()); request.releaseConnection(); } }